package cn.psvmc.cxzapi.service.market;

import cn.psvmc.cxzapi.config.mybatisplus.service.impl.AbstractService;
import cn.psvmc.cxzapi.exception.ServiceException;
import cn.psvmc.cxzapi.mapper.market.TMarketMapper;
import cn.psvmc.cxzapi.model.common.MarketEntity;
import cn.psvmc.cxzapi.model.market.TMarket;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * 营销首页表 服务实现类
 * @Author auto
 * @Date 2024-08-13
 */
@Service
public class TMarketService extends AbstractService<TMarketMapper, TMarket> {

    @Resource
    private TMarketMapper tMarketMapper;

    /**
    * @Date auto 2024-08-13 新增营销首页表
    * @Param tMarket 营销首页表
    * @Return int
    */
    public int add(TMarket tMarket){
        return tMarketMapper.insert(tMarket);
    }

    /**
    * @Date auto 2024-08-13 更新营销首页表
    * @Param tMarket 营销首页表模型
    * @Return int
    */
    public int edit(TMarket tMarket){
        // 通过id查询数据处理 详情
        TMarket originTMarket = this.detail(tMarket.getMarketid());
        if(originTMarket == null){
            throw new ServiceException("未查询到对应的营销首页表信息！");
        }

        // 比较数据版本号
        if(!originTMarket.getRversion().equals(tMarket.getRversion())){
            throw new ServiceException("数据已更新，请刷新后重试！");
        }

        // 字段为null 不更新
        return tMarketMapper.updateById(tMarket);
    }

    /**
    * @Date auto 2024-08-13 查询营销首页表详情
    * @Param id 唯一id
    * @Return cn.psvmc.cxzapi.model.market.TMarket
    */
    public TMarket detail(Integer id){
        return tMarketMapper.selectById(id);
    }

    /**
     * @Description 删除
     * @Date 2024/8/18 13:07
     * @Author YWX
     * @Param [componentId]
     * @Return void
     **/
    public void delete(String componentId) {
        tMarketMapper.deleteByComponentId(componentId);
    }

    /**
    * @Date auto 2024-08-13 查询营销首页表列表
    * @Param iPage 分页
    * @Return com.baomidou.mybatisplus.core.metadata.IPage<cn.psvmc.cxzapi.model.market.TMarket>
    */
    public List<Map> listAll(MarketEntity entity) {
        return tMarketMapper.listAll(entity);
    }

    /**
     * @Description 排序
     * @Date 2024/8/18 12:39
     * @Author YWX
     * @Param [markets]
     * @Return void
     **/
    public void sort(List<TMarket> markets) {
        tMarketMapper.sort(markets);
    }
}
